package com.botann.projects.service;

import com.botann.projects.model.View;
import com.botann.projects.model.Menu;
import com.botann.projects.model.View;
import com.botann.projects.model.ViewItem;
import com.sun.istack.internal.NotNull;

import java.util.List;

/**
 * Charging
 * ViewServiceIntf
 * Created by 刘山国 on 2018/4/16.
 * Copyright (c) 2017 伯坦科技. All rights reserved
 */
public interface ViewServiceIntf {

    /**
     * 页面列表
     * @param Integer menuId
     * @return List
     */
    List loadViews(@NotNull Integer menuId);

    /**
     * 添加权限页
     * @param String viewJson
     */
    void addView(@NotNull Integer menuId, @NotNull String viewJson);

    /**
     * 更新权限页
     * @param String viewJson
     */
    void updateView(@NotNull String viewJson);

    /**
     * 批量删除权限页面
     * @param String deleteIdsJson
     */
    void deleteViews(@NotNull String deleteIdsJson);

    /**
     * 权限项列表
     * @param Integer viewId
     * @return List
     */
    List loadViewItems(@NotNull Integer viewId);

    /**
     * 添加 页面权限项
     * @param Integer ViewId
     * @param String viewItemJson
     */
    void addViewItem(@NotNull Integer viewId, @NotNull String viewItemJson);

    /**
     * 更新权限项
     * @param String viewItemJson
     */
    void updateViewItem(@NotNull String viewItemJson);

    /**
     * 批量删除页面权限项
     * @param string deleteIdsJsonS
     */
    void deleteViewItems(@NotNull String deleteIdsJson);

    /**
     * 批量删除
     * @param string deleteIdsJsonS
     */
    void deleteViewOrItems(@NotNull List<View> views);

    /**  角色页面权限控制  **/

    List loadRoleViews(@NotNull Integer roleId, @NotNull Integer menuId) ;

    void saveRoleViews(@NotNull Integer roleId, @NotNull List<View> views);

    List<ViewItem> loadAuthorityViewItems(@NotNull Integer menuId, String url);

    List<Menu> loadAllMenuViews(List<Menu> menus, Integer roleId) ;
    void saveAllMenuViews(List<Menu> menus, Integer roleId);
    void deleteMenuViews(String menuViewsJson);
}
